package controller

import (
	"VideoManageSystem/internal/service"
	"errors"

	"github.com/gin-gonic/gin"
	"gorm.io/gorm"
)

// DeleteUser 删除用户
func DeleteUser(c *gin.Context) {
	var userInput struct {
		ID string `json:"id"`
	}

	if err := c.ShouldBindJSON(&userInput); err != nil {
		c.JSON(400, gin.H{
			"code":    400,
			"message": "请求参数错误；错误：" + err.Error(),
		})
		return
	}

	// 删除用户
	err := service.DeleteUserByID(userInput.ID)
	if err != nil {
		if errors.Is(err, gorm.ErrRecordNotFound) {
			// 如果是记录未找到错误
			c.JSON(403, gin.H{
				"code":    403,
				"message": "该用户不存在",
			})
		} else {
			c.JSON(500, gin.H{
				"code":    500,
				"message": "服务器内部错误，无法删除指定用户，请稍后再试；错误：" + err.Error(),
			})
		}
		return
	}

	// 返回成功响应
	c.JSON(200, gin.H{
		"code":    200,
		"message": "删除指定用户成功",
	})
}
